<html>
<body>
<h1>JavaCC Plugin</h1>
<p>
    Generates java sources from JavaCC grammars for parsing
</p>
<div id="after-summary">
    <p>To use the plugin, choose the correct template based on whether you are generating test or main
    sources. The generated sources will automatically be added to the relevant compilation source path. e.g.</p>
    <pre>&lt;plugin group="quokka.plugin.javacc" version="?"&gt;
    &lt;target name="myjavacc" template="javacc-main"&gt;
        &lt;property name="in" value="src/TestGrammar.jj"/&gt;
        &lt;property name="sourcesRoot" value="${q.project.targetDir}/generated-sources"/&gt;
        &lt;property name="out" value="${myjavacc.sourcesRoot}/com/mypackage"/&gt;
    &lt;/target&gt;
&lt;/plugin&gt;</pre>
    <p><b>Properties: </b> (Common to all targets)</p>
    <ul>
        <li>
            <b>in</b> <i>Mandatory.</i> The JavaCC grammar file (usually ending in .jj)
        </li>
        <li>
            <b>out</b> <i>Mandatory.</i> The directory the generated sources will be written to
        </li>
        <li>
            <b>sourcesRoot</b> <i>Mandatory.</i> The root directory of the generated sources that will be added for compilation.
            As JavaCC doesn't create the package structure, this is usually an ancestor of out.
        </li>
        <li>
            <b>sourcesPath</b> <i>Mandatory.</i> Either 'main' or 'test'. This controls whether the sources generated are added
            to the 'compile' or 'test-compile' source paths respectively.
        </li>
        <li>
            <b>jdkVersion</b> <i>Optional.</i> The JDK version for generated sources.
        </li>
        <li>
            <b>options</b> <i>Optional.</i> Any combination of <a href="#options">options</a> below.
        </li>
    </ul>
    <br/>
<h2><a name="options"><span/></a> Options</h2>
    <pre>
options is a sequence of settings separated by spaces.
Each option setting must be of one of the following forms:

    -optionname=value (e.g., -STATIC=false)
    -optionname:value (e.g., -STATIC:false)
    -optionname       (equivalent to -optionname=true.  e.g., -STATIC)
    -NOoptionname     (equivalent to -optionname=false. e.g., -NOSTATIC)

Option settings are not case-sensitive, so one can say "-nOsTaTiC" instead
of "-NOSTATIC".  Option values must be appropriate for the corresponding
option, and must be either an integer, a boolean, or a string value.

The integer valued options are:

    LOOKAHEAD              (default 1)
    CHOICE_AMBIGUITY_CHECK (default 2)
    OTHER_AMBIGUITY_CHECK  (default 1)

The boolean valued options are:

    STATIC                 (default true)
    DEBUG_PARSER           (default false)
    DEBUG_LOOKAHEAD        (default false)
    DEBUG_TOKEN_MANAGER    (default false)
    OPTIMIZE_TOKEN_MANAGER (default true)
    ERROR_REPORTING        (default true)
    JAVA_UNICODE_ESCAPE    (default false)
    UNICODE_INPUT          (default false)
    IGNORE_CASE            (default false)
    COMMON_TOKEN_ACTION    (default false)
    USER_TOKEN_MANAGER     (default false)
    USER_CHAR_STREAM       (default false)
    BUILD_PARSER           (default true)
    BUILD_TOKEN_MANAGER    (default true)
    TOKEN_MANAGER_USES_PARSER (default false)
    SANITY_CHECK           (default true)
    FORCE_LA_CHECK         (default false)
    CACHE_TOKENS           (default false)
    KEEP_LINE_COLUMN       (default true)

The string valued options are:

    OUTPUT_DIRECTORY       (default Current Directory)
    JDK_VERSION       (default 1.4)

EXAMPLE:
    -STATIC=false -LOOKAHEAD:2
    </pre>
</div>
</body>
</html>